#include <stdio.h>
#include <math.h>

double zamiana(char binarna[]) {
  int bi,i;
  int dlugosc = 0;
  int dot = -1;
  double wynik = 0;

  for(bi = 0; binarna[bi] != '\0'; bi++) {
    if(binarna[bi] == '.') {
      dot = bi;
    }
    dlugosc++;
  }
  if(dot == -1)
    dot = dlugosc;

  for(i = dot; i >= 0 ; i--) {
    if (binarna[i] == '1') {
      wynik += (double) pow(2,(dot-i-1));
    }
  }
  for(i = dot; binarna[i] != '\0'; i++) {
    if (binarna[i] == '1') {
      wynik += 1.0/(double) pow(2.0,(double)(i-dot));
    }
  }
  return wynik;
}

int main() {
   
   char bin[] = "0.89";
   printf("%s -> %f\n",bin, zamiana(bin)); 

   return 0;
}
